////////////////////////////////////////////////////////////////////////
// Last svn revision: $Id:  $ 
////////////////////////////////////////////////////////////////////////
/// \class drow::MLC::def::DefaultMatrixOp
///
/// \brief  The default library of matrix operations
///
/// \author Douglas Richardson         <douglas.richardson@swyrich.com>
///
/// REVISION HISTORY:\n
/// 	22/03/12 : Douglas Richardson - New File \n
///
/// \details The default library of matrix operations
///
////////////////////////////////////////////////////////////////////////

#ifndef __drow_MLC_def_DefaultMatrixOp__
#define __drow_MLC_def_DefaultMatrixOp__

#include "MLC/AMatrixOp.hh"

namespace drow {
namespace MLC {
namespace def {

class DefaultMatrixOp : AMatrixOp {

public:
    DefaultMatrixOp() : AMatrixOp() { };
    Matrix Add(const Matrix &m1, const Matrix &m2);
    Matrix Subtract(const Matrix &m1, const Matrix &m2);
    Matrix Multiply(const Matrix &m1, const Matrix &m2);
    Matrix Dot(const Matrix &m1, const Matrix &m2);
    Matrix Cross(const Matrix &m1, const Matrix &m2);
    Matrix Norm(const Matrix &m1, const int normSize);
    Matrix Transpose(const Matrix &m1);
    
};

}
}
}

#endif